/******************************************************************************\
*                                                                              *
*     File: Dierentuin_cc                                                      *
*                                                                              *
*   Author: Jan Meuleman / Douwe A. van Twillert                               *
*  Purpose: de definitie (implementatie) van de klasse Dierentuin              *
*  Version: 1.0      MEM 20020124                                              *
*           - eerste versie                                                    *
*  Version: 1.1      TWI 20080218                                              *
*           - header aangepast voor duidelijk kunnen printen                   *
*           - kleine aanpassingen om het half werkend te krijgen               *
*                                                                              *
\******************************************************************************/

#include "Dierentuin.h"

/*
 *   Constructor
 */
Dierentuin::Dierentuin(string een_naam) {
	de_naam = een_naam;
	de_werknemers = new list<Werknemer*>();
        de_dieren = new list<Dier*>();
}

/*
 *   Destructor
 */
Dierentuin::~Dierentuin() {
}


/*
 *   Dierentuin::getNaam()
 */
string	Dierentuin::getNaam() {
	return de_naam;
}

/*
 *   Dierentuin::dierToevoegen()
 */
void	Dierentuin::dierToevoegen() {
        int		dierNummer;
	string          dierNaam;
	int		dierLeeftijd;

	cout << endl << "Geef op een regel, gescheiden door spatie(s) het" 
	                " unieke nummer, de naam en de leeftijd van het dier op"
	     << endl;

	// lees de gegevens in
	cin >> dierNummer >> dierNaam >> dierLeeftijd;
         
	// maak een nieuw dier en stop het in de lijst van dieren
	
        de_dieren->push_back(new Dier( dierNummer, dierNaam,
	                        dierLeeftijd));
}

/*
 *   Dierentuin::dierVerwijderen()
 */
void	Dierentuin::dierVerwijderen() {
	cout << "Not yet implemented\n";
}

/*
 *   Dierentuin::werknemerToevoegen()
 */
void	Dierentuin::werknemerToevoegen() {
	int		werknemerNummer;
	string	werknemerNaam;
	int		werknemerLeeftijd;

	cout << endl << "Geef op een regel, gescheiden door spatie(s) het" 
	                " unieke nummer, de naam en de leeftijd van de werknemer op"
	     << endl;

	// lees de gegevens in
	cin >> werknemerNummer >> werknemerNaam >> werknemerLeeftijd;

	// maak een nieuwe werknemer en stop hem/haar in de lijst van werknemers
        de_werknemers->push_back( new Werknemer( werknemerNummer, werknemerNaam,
	                        werknemerLeeftijd));
}

/*
 *   Dierentuin::werknemerVerwijderen()
 */
void  Dierentuin::werknemerVerwijderen() {
	cout << "Not yet implemented" << endl;

}

/*
 *   Dierentuin::overzichtDieren()
 */
void Dierentuin::overzichtDieren() {
    cout << "Lijst van alle dieren" << endl;
    for(list<Dier*>::iterator iter = de_dieren->begin(); iter != de_dieren->end(); ++iter){
        (*iter)->drukaf();
    }
}

/*
 *   Dierentuin::overzichtWerknemers()
 */
void Dierentuin::overzichtWerknemers() {
	cout << "Lijst van alle werknemers" << endl;
	for(list<Werknemer*>::iterator iter = de_werknemers->begin(); iter != de_werknemers->end(); ++iter){
        (*iter)->drukaf();
    }
}
